/*
一个正整数n可以表示成若干个正整数之和，形如：n=n1+n2+...+nk，其中n1≥n2≥...≥nk，且k≥1。我们将这样的一种表示称为正整数n的一种划分。
现在给定一个正整数n，请你求出n共有多少种不同的划分方法。

输入格式
共一行，包含一个整数n。

输出格式
共一行，包含一个整数，表示总划分数量。
由于答案可能很大，输出结果请对10^9+7取模。

数据范围
1≤n≤1000

输入样例
5

输出样例
7
 */

import java.util.*;

public class Main {
    static final int mod = (int) 1e9 + 7;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] dp = new int[n + 1][n + 1];
        //初始化 和为0的方案数为1
        for (int i = 1; i <= n; i++) {
            dp[i][0] = 1;
        }
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                if (j >= i)
                    dp[i][j] = (dp[i - 1][j] + dp[i][j - i]) % mod;
                else
                    dp[i][j] = dp[i - 1][j] % mod;
            }
        }
        System.out.println(dp[n][n]);
    }
}